package com.sz.admin.dtuinfo.pojo.po;

import com.mybatisflex.annotation.*;
import com.mybatisflex.core.handler.JacksonTypeHandler;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.io.Serial;
import com.sz.mysql.EntityChangeListener;
import java.time.LocalDateTime;
import java.util.List;

/**
* <p>
* DTU信息表
* </p>
*
* @author sz-admin
* @since 2025-08-29
*/
@Data
@Table(value = "dtu_info", onInsert = EntityChangeListener.class, onUpdate = EntityChangeListener.class)
@Schema(description = "DTU信息表")
public class DtuInfo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @Id(keyType = KeyType.Auto)
    @Schema(description ="id")
    private String id;

    @Schema(description ="DTU设备编号")
    private String dtuNumber;

    @Schema(description ="设备名称")
    private String name;

    @Schema(description ="排序")
    private Integer sort;

    @Schema(description ="ICCID")
    private String iccid;

    @Schema(description ="LEDID")
    private String ledid;

    @Schema(description ="绑定密码")
    private String bindToken;

    @Schema(description ="设备状态 （字典表dtu_status）")
    private String dtuStatus;

    @Schema(description ="绑定时间")
    private LocalDateTime bindTime;

    @Schema(description ="过期时间")
    private LocalDateTime expireTime;

    @Schema(description ="创建时间")
    private LocalDateTime createTime;

    @Schema(description ="更新时间")
    private LocalDateTime updateTime;

    @Schema(description ="创建人ID")
    private Long createId;

    @Schema(description ="更新人ID")
    private Long updateId;

    @Column(isLogicDelete = true)
    @Schema(description ="是否删除")
    private String delFlag;

    @Schema(description ="删除人ID")
    private Long deleteId;

    @Schema(description ="删除时间")
    private LocalDateTime deleteTime;

    @Schema(description ="车辆id")
    private Long vehicleId;

    @Schema(description ="端口")
    private Integer port;

    @Schema(description = "部门范围id")
    @Column(typeHandler = JacksonTypeHandler.class)
    private List<Long> deptScope;
}